[c++]bigint的运算符重载

来源:百度知道 编辑:UC知道 时间:2024/05/22 17:36:47
貌似是定义有点问题= =|||...还有用friend定义过的函数怎么调用...Orz...

#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class bigint{
public:
friend bigint operator+(bigint&,bigint&);
friend bigint operator-(bigint&,bigint&):
friend bigint operator*(bigint&,bigint&);
friend bigint operator/(bigint&,bigint&);
//bigint compare();
void control();
void menu();
int input();
int length1();
public:
int a;

};
vector<int>ivec1;
vector<int>ivec2;
vector<int>ivec3;
int length=0;

int length1(){

if(ivec1.size()<=ivec2.size())
length=ivec1.size();
else
length=ivec2.size();
return 0;}
bigint operator+(bigint& temp1,const bigint& temp2) {/*加法*/
//int input();
//int length1();
//for(int i=0;i<=length;i++){
// ive

你这错的真是离谱啊.
我用模板描述的操作符重载的返回类型,还有,你对操作符重载的概念真的是很混乱,建议你多读几个操作符重载的程序再写吧

#include <iostream>
#include <string>
#include <vector>
using namespace std;
template<class T>
class bigint
{
public:
friend T operator+(bigint&,bigint&);
friend T operator-(bigint&,bigint&);
friend T operator*(bigint&,bigint&);
friend T operator/(bigint&,bigint&);
//bigint compare();
void control();
void menu();
int input();
int length1();
public:
int a;

};

vector<int> ivec1;
vector<int> ivec2;
vector<int> ivec3;
int length=0;

int length1()
{

if(ivec1.size()<=ivec2.size())
length=ivec1.size();
else
length=ivec2.size();
return 0;
}
template<class T>
T operator+(T& ivec1,T& ivec2)
{
int input();
int le